「唉,晚上來看Stack和Queue的題目吧。」我看了看剩下的tags,做出了決定。
「學姊為啥嘆氣啊。」學妹端起冒著煙的拉麵,嚥下一口熱湯後露出幸福的表情。
「因為Stack和Queue不太彈性啊,要拿到資料得排隊一個個等。」超麻煩的。
「咳?排隊?」學妹被麵條嗆到。「咳咳,學姊你說清楚點。」
「Stack就想成紙箱裡的書,能馬上拿出來的就是最後放進去的那本;Queue就把紙箱另一端打開,掉出來的是最先放進去的那本。」
學妹可能設想了一下書本掉出來的畫面,表情有點扭曲。「哦,除非是畢業後那些不會再看的課本,書一般我不會放在紙箱,會放在書架。」
「對呀,陣列和書架比較相似,想拿第幾本就拿第幾本。」我同意。但是書架空間太有限,所以我有一堆書都在紙箱,找書不方便不說,還得定時捕殺衣魚。
「學姊再不吃,麵會爛掉。」
「啊,妳不早點提醒我!」我趕緊拿起筷子撈麵,嗯,這個拉麵湯頭還滿濃郁的。
享用完溫暖的食物之後,有點昏昏欲睡。
我讓學妹先睡,腦海裡想著昨天看到的題目1700. Number of Students Unable to Eat Lunch,要求算出吃不到三明治的學生數量。
一開始會想要跑三明治迴圈包學生迴圈,但是仔細想想好像不需要,因為吃不到三明治的學生數量也等於被剩下的三明治數量。
所以就把學生按照1和0分類,開頭的三明治沒人吃的時候就能得到結果。
class Solution {
fun countStudents(students: IntArray, sandwiches: IntArray): Int {
var count1 = students.sum()
var count0 = students.size - count1
for (it in sandwiches) {
if ((it == 1 && count1 == 0) || (it == 0 && count0 == 0)) {
break
}
if (it == 1) count1-- else count0--
}
return count0 + count1
}
}